package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelo.Ingrediente;
import modelo.Sentencias;
import vista.VistaIngrediente;;

public class ControladorIngrediente implements ActionListener{

	public VistaIngrediente vIngrediente;
	public Ingrediente ingrediente;
	public Sentencias MyConex;

	public ControladorIngrediente(VistaIngrediente vc){
		vIngrediente=vc;
	}
			public void actionPerformed(ActionEvent ae) {
				if(ae.getSource()== vIngrediente.btnSalir)
				{
					int opcion = JOptionPane.showConfirmDialog(new JFrame(),"Desea volver al menu anterior?",
							     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
							     JOptionPane.QUESTION_MESSAGE);
					if (opcion == JOptionPane.YES_OPTION)
						vIngrediente.dispose();
				}
				if(ae.getSource()==vIngrediente.btnRegistrar){
					if(validarCampos()){
				ingrediente = new Ingrediente(vIngrediente.txtCodIngrediente.getText(),vIngrediente.txtDescripcion.getText(),Float.parseFloat(vIngrediente.txtExistencia.getText()),Float.parseFloat(vIngrediente.txtPrecio.getText()));
						MyConex = new Sentencias();
				MyConex.insetarDatosIngrediente(ingrediente);
				JOptionPane.showMessageDialog(new JFrame(), 
						"El Ingrediente se ha registrado con exito","Ingrediente", 
						JOptionPane.INFORMATION_MESSAGE);
				   inicio();
				}
					else
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor introduzca todos los datos del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
		}
				if(ae.getSource()==vIngrediente.btnBuscar){
					MyConex = new Sentencias();
					String codIngrediente=vIngrediente.txtCodIngrediente.getText();
					if(codIngrediente.equals(""))
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor introduzca el codigo del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
					else
					{
					ingrediente=MyConex.obtenerIngrediente(codIngrediente);
					if(ingrediente==null){
						JOptionPane.showMessageDialog(new JFrame(), 
								"El ingrediente no se encuntra registrado","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
						noEncontrado();
					}
					else{	
					vIngrediente.txtDescripcion.setText(ingrediente.getDescripcion());
					vIngrediente.txtExistencia.setText(String.valueOf(ingrediente.getExistencia()));
					vIngrediente.txtPrecio.setText(String.valueOf(ingrediente.getPrecio()));
					encontrado();
					}
					}
		         }
				if(ae.getSource()== vIngrediente.btnModificar){
					if(validarCampos()){
					ingrediente = new Ingrediente(vIngrediente.txtCodIngrediente.getText(),vIngrediente.txtDescripcion.getText(),Float.parseFloat(vIngrediente.txtExistencia.getText()),Float.parseFloat(vIngrediente.txtPrecio.getText()));
							MyConex = new Sentencias();
					MyConex.modificarIngrediente(vIngrediente.txtCodIngrediente.getText(),ingrediente);
					JOptionPane.showMessageDialog(new JFrame(), 
							"Los datos del ingrediente han sido modificado","Ingrediente", 
							JOptionPane.INFORMATION_MESSAGE);
					inicio();}
					else
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor ingrese todos los datos del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
						
			}
				if(ae.getSource()== vIngrediente.btnLimpiar){
					limpiarCampos();
					
				}
}
			public boolean validarCampos(){
				boolean validar=true;
				if(vIngrediente.txtDescripcion.getText().equals("") || vIngrediente.txtPrecio.getText().equals(""))
					validar=false;
				return validar;
			}
			public void limpiarCampos(){
				vIngrediente.txtDescripcion.setText("");
				vIngrediente.txtPrecio.setText("");
				vIngrediente.txtCodIngrediente.setText("");
				vIngrediente.txtCodIngrediente.requestFocus(true);
				desActivar();
					}
			public void encontrado(){
				vIngrediente.txtDescripcion.setEditable(true);
				vIngrediente.txtPrecio.setEditable(true);
				vIngrediente.btnModificar.setEnabled(true);	
				vIngrediente.btnLimpiar.setEnabled(true);
				vIngrediente.btnRegistrar.setEnabled(false);
			}
			public void noEncontrado(){
				vIngrediente.btnRegistrar.setEnabled(true);
				vIngrediente.txtDescripcion.setEditable(true);
				vIngrediente.txtDescripcion.requestFocus(true);
				vIngrediente.txtPrecio.setEditable(true);
				vIngrediente.btnLimpiar.setEnabled(true);
				vIngrediente.txtCodIngrediente.setEditable(false);
			}
			public void desActivar(){
				vIngrediente.btnRegistrar.setEnabled(false);
				vIngrediente.txtDescripcion.setEditable(false);
				vIngrediente.txtPrecio.setEditable(false);
				vIngrediente.btnLimpiar.setEnabled(false);
				vIngrediente.txtCodIngrediente.setEditable(true);	
				
			}
			public void inicio(){
				vIngrediente.btnModificar.setEnabled(false);
				vIngrediente.btnRegistrar.setEnabled(false);
				vIngrediente.btnLimpiar.setEnabled(false);
			    limpiarCampos();
				
			}
			
			}